<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>lwIP: DNS</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">lwIP
   &#160;<span id="projectnumber">2.1.2</span>
   </div>
   <div id="projectbrief">Lightweight IP stack</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__lwip__opts__dns.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">DNS<div class="ingroups"><a class="el" href="group__lwip.html">lwIP</a> &raquo; <a class="el" href="group__lwip__opts.html">Options (lwipopts.h)</a> &raquo; <a class="el" href="group__lwip__opts__callback.html">Callback-style APIs</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga98710dd81446b7cb2daac736bae6f646"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga98710dd81446b7cb2daac736bae6f646">LWIP_DNS</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga98710dd81446b7cb2daac736bae6f646"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2384e76c1acdf969d883f3de08d340f7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga2384e76c1acdf969d883f3de08d340f7">DNS_TABLE_SIZE</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:ga2384e76c1acdf969d883f3de08d340f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b01c79902063c170ef57deb72f56124"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga3b01c79902063c170ef57deb72f56124">DNS_MAX_NAME_LENGTH</a>&#160;&#160;&#160;256</td></tr>
<tr class="separator:ga3b01c79902063c170ef57deb72f56124"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f9881c887a8aceb9765820c2dbdf292"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga9f9881c887a8aceb9765820c2dbdf292">DNS_MAX_SERVERS</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga9f9881c887a8aceb9765820c2dbdf292"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab73c241189335435f3f662aa6a00dba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#gaab73c241189335435f3f662aa6a00dba">DNS_MAX_RETRIES</a>&#160;&#160;&#160;4</td></tr>
<tr class="separator:gaab73c241189335435f3f662aa6a00dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07ffd8e9106dae3b65347bd03811a4b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga07ffd8e9106dae3b65347bd03811a4b6">DNS_DOES_NAME_CHECK</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:ga07ffd8e9106dae3b65347bd03811a4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8979c30dfbfde609d5139f80aabdfcc5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga8979c30dfbfde609d5139f80aabdfcc5">LWIP_DNS_SECURE</a>&#160;&#160;&#160;(LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)</td></tr>
<tr class="separator:ga8979c30dfbfde609d5139f80aabdfcc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacba1ac491c1b47b98dfbd0d5c1662659"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#gacba1ac491c1b47b98dfbd0d5c1662659">DNS_LOCAL_HOSTLIST</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gacba1ac491c1b47b98dfbd0d5c1662659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8235a5fb0a1c1cceeee670cf95612ba8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#ga8235a5fb0a1c1cceeee670cf95612ba8">DNS_LOCAL_HOSTLIST_IS_DYNAMIC</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga8235a5fb0a1c1cceeee670cf95612ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafcbde5706a70ace562bd1f7d2d6f77cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lwip__opts__dns.html#gafcbde5706a70ace562bd1f7d2d6f77cb">LWIP_DNS_SUPPORT_MDNS_QUERIES</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gafcbde5706a70ace562bd1f7d2d6f77cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga07ffd8e9106dae3b65347bd03811a4b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga07ffd8e9106dae3b65347bd03811a4b6">&#9670;&nbsp;</a></span>DNS_DOES_NAME_CHECK</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_DOES_NAME_CHECK&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DNS do a name checking between the query and the response. </p>

</div>
</div>
<a id="gacba1ac491c1b47b98dfbd0d5c1662659"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacba1ac491c1b47b98dfbd0d5c1662659">&#9670;&nbsp;</a></span>DNS_LOCAL_HOSTLIST</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_LOCAL_HOSTLIST&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled, you have to define an initializer: #define DNS_LOCAL_HOSTLIST_INIT {DNS_LOCAL_HOSTLIST_ELEM("host_ip4", <a class="el" href="group__ip4addr.html#ga55cc3896c46564bd2941ee5806fe1e11">IPADDR4_INIT_BYTES(1,2,3,4)</a>), \ DNS_LOCAL_HOSTLIST_ELEM("host_ip6", <a class="el" href="group__ip6addr.html#gadaff748da2b808995993dd3db5420f08">IPADDR6_INIT_HOST(123, 234, 345, 456)</a>}</p>
<p>Instead, you can also use an external function: #define DNS_LOOKUP_LOCAL_EXTERN(x) extern err_t my_lookup_function(const char *name, ip_addr_t *addr, u8_t dns_addrtype) that looks up the IP address and returns ERR_OK if found (LWIP_DNS_ADDRTYPE_xxx is passed in dns_addrtype). </p>

</div>
</div>
<a id="ga8235a5fb0a1c1cceeee670cf95612ba8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8235a5fb0a1c1cceeee670cf95612ba8">&#9670;&nbsp;</a></span>DNS_LOCAL_HOSTLIST_IS_DYNAMIC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>If this is turned on, the local host-list can be dynamically changed at runtime. </p>

</div>
</div>
<a id="ga3b01c79902063c170ef57deb72f56124"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b01c79902063c170ef57deb72f56124">&#9670;&nbsp;</a></span>DNS_MAX_NAME_LENGTH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_MAX_NAME_LENGTH&#160;&#160;&#160;256</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DNS maximum host name length supported in the name table. </p>

</div>
</div>
<a id="gaab73c241189335435f3f662aa6a00dba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaab73c241189335435f3f662aa6a00dba">&#9670;&nbsp;</a></span>DNS_MAX_RETRIES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_MAX_RETRIES&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DNS maximum number of retries when asking for a name, before "timeout". </p>

</div>
</div>
<a id="ga9f9881c887a8aceb9765820c2dbdf292"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f9881c887a8aceb9765820c2dbdf292">&#9670;&nbsp;</a></span>DNS_MAX_SERVERS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_MAX_SERVERS&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The maximum of DNS servers The first server can be initialized automatically by defining DNS_SERVER_ADDRESS(ipaddr), where 'ipaddr' is an 'ip_addr_t*' </p>

</div>
</div>
<a id="ga2384e76c1acdf969d883f3de08d340f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2384e76c1acdf969d883f3de08d340f7">&#9670;&nbsp;</a></span>DNS_TABLE_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DNS_TABLE_SIZE&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>DNS maximum number of entries to maintain locally. </p>

</div>
</div>
<a id="ga98710dd81446b7cb2daac736bae6f646"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98710dd81446b7cb2daac736bae6f646">&#9670;&nbsp;</a></span>LWIP_DNS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_DNS&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS transport. </p>

</div>
</div>
<a id="ga8979c30dfbfde609d5139f80aabdfcc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8979c30dfbfde609d5139f80aabdfcc5">&#9670;&nbsp;</a></span>LWIP_DNS_SECURE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_DNS_SECURE&#160;&#160;&#160;(LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>LWIP_DNS_SECURE: controls the security level of the DNS implementation Use all DNS security features by default. This is overridable but should only be needed by very small targets or when using against non standard DNS servers. </p>

</div>
</div>
<a id="gafcbde5706a70ace562bd1f7d2d6f77cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafcbde5706a70ace562bd1f7d2d6f77cb">&#9670;&nbsp;</a></span>LWIP_DNS_SUPPORT_MDNS_QUERIES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LWIP_DNS_SUPPORT_MDNS_QUERIES&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set this to 1 to enable querying ".local" names via mDNS using a One-Shot Multicast DNS Query </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
